package com.neu.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
		 *                     Map<key, value>  
		 * @author neustu
		 * Demo01：展示的是Map集合的使用
		 */
public class Demo01 {
	
	// 创建一个  Map 里面是String类型 和 Integer类型 
@SuppressWarnings("unused")
private static Map<String, Integer> map  = new HashMap<>();

     //   再创建一个没有 类型的 
@SuppressWarnings({ "rawtypes", "unused" })
private static Map map1  = new HashMap();

@SuppressWarnings("unchecked")
public static void putValue() {
		/*
		 * put方法：用来完成键值对的添加
		 *    key就是String类型
		 *    value就是Integer类型 
		 *  因为你创建的   map集合   Map里面是String类型和 Integer类型
		 *     所以你只能放String类型和 Integer类型 的值
		 */
	map.put("pass1", 123);
	map.put("pass2", 345);
	
	/*
	 * 因为你创建的  map1的集合Map里面的集合是Object类型的 (不写默认的是Object)
	 * 所以你可以放任何类型的数据
	 */
	map1.put("name1","aaa");
	map1.put("name2","bbb");
	
	//  输出   map  和    map1
	System.out.println("map  : "+map+" , map1"+map1);
}

/* @param args
 *              一些 判断的方法
 */
public static void  method() {
	//判断集合是否为空    isEmpty
	//如果为空那么返回ture 否则返回flase
	boolean flag = map.isEmpty();
	System.out.println(flag);
	
	//判断指定的值在集合中是否存在，containsValue
	//如果存在返回true，否则false
	boolean flag1 = map.containsValue(345);
	System.out.println(flag1);
	
	//判断指定的key在集合中是否存在，  containsKey
	//如果存在返回true，否则false
	boolean flag2 = map.containsKey("pass1");
	System.out.println(flag2);
}
	/**
	 *   根据key获取集合中的数据
	 */
	public static void getValueByKey() {
		Integer value1=map.get("pass2");
		Object obj=map1.get("name1");
		System.out.println("value1  :"+value1+", obj :"+obj);
	}
	
	
	
	/**
	 * 
	 * @param args
	 * 遍历集合Map，将Map集合中的key存储到Set集合中，
	 * 再通过Iterator迭代器遍历Set集合获取key；
	 */
	public static void mapByIterator() {
		//将map集合中key通过map本身的方法keySet生成Set类型的对象
		Set<String> set=map.keySet();
		//通过Iterator迭代器遍历set集合，目的是为了获取set集合存储的key
		Iterator<String> ite=set.iterator();
		String key=null;
		while(ite.hasNext()) {
			key=ite.next();
			System.out.println("map中的key  ："+key+", 根据key获取map中对应的value  "
					+ " ："+map.get(key));
		}
	}
	
	
	public static void main(String[] args) {
		putValue();
		//delete();
		//method();
		//getValueByKey();
		mapByIterator();

	}

}
